home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / mach / sparc / exception.h < prev    next >
Text File  |  1995-02-14  |  4KB  |  123 lines

  1. /*
  2.  * Copyright (c) 1994 NeXT Computer, Inc.
  3.  *
  4.  * SPARC Family:    Machine dependent exception codes.
  5.  *
  6.  * HISTORY
  7.  *
  8.  * 21-Apr-1994 Mac Gillon at NeXT
  9.  *    Created.
  10.  */
  11.  
  12. #ifndef    _MACH_SPARC_EXCEPTION_H_
  13. #define    _MACH_SPARC_EXCEPTION_H_
  14.  
  15.  
  16. #import    <machdep/sparc/trap.h>
  17.  
  18. /*
  19.  *    EXC_BAD_ACCESS
  20.  *    Note: do not conflict with kern_return_t values returned by vm_fault
  21.  */
  22.  
  23. /* to avoid clash with the kern_return.h values */
  24. #define EXC_SPARC_BAD_ACCESS(x)        (0x300+x)
  25.  
  26. #define EXC_SPARC_TEXT_FAULT    EXC_SPARC_BAD_ACCESS(0x01)
  27. /* same value for TEXT_ERROR */ 
  28. #define EXC_SPARC_WIN_OVERFLOW    EXC_SPARC_BAD_ACCESS(0x02)
  29. #define EXC_SPARC_WIN_UNDERFLOW    EXC_SPARC_BAD_ACCESS(0x03)
  30. #define EXC_SPARC_ALIGNMENT    EXC_SPARC_BAD_ACCESS(0x04)
  31. #define EXC_SPARC_DATA_FAULT    EXC_SPARC_BAD_ACCESS(0x05)
  32. /* same value for DATA_ERROR */
  33. #define EXC_SPARC_DATA_STORE    EXC_SPARC_BAD_ACCESS(0x06)
  34. #define EXC_SPARC_DATA_MISS    EXC_SPARC_BAD_ACCESS(0x07)
  35. #define EXC_SPARC_TEXT_MISS    EXC_SPARC_BAD_ACCESS(0x08)
  36.  
  37. #define    EXC_SPARC_BUS_HWERR    EXC_SPARC_BAD_ACCESS(0x09)
  38.             /* misc hardware error (e.g. timeout) */
  39. #define    EXC_SPARC_BUS_ALIGN    EXC_SPARC_BAD_ACCESS(0x0A)    
  40.             /* hardware alignment error */
  41. #define    EXC_SPARC_SEGV_NOMAP    EXC_SPARC_BAD_ACCESS(0x0B)    
  42.             /* no mapping at the fault address */
  43. #define    EXC_SPARC_SEGV_PROT    EXC_SPARC_BAD_ACCESS(0x0C)        
  44.             /* access exceeded protections */
  45. #define    EXC_SPARC_OBJERR    EXC_SPARC_BAD_ACCESS(0x0D)    
  46.             /* object returned errno value */
  47. #define EXC_SPARC_FP_DISABLED    EXC_SPARC_BAD_ACCESS(0x0E)
  48. #define EXC_SPARC_CP_DISABLED    EXC_SPARC_BAD_ACCESS(0x0F)
  49.  
  50. /*
  51.  *    EXC_BAD_INSTRUCTION
  52.  */
  53.  
  54. #define EXC_SPARC_BAD_INST(x)        (0x500+x)
  55.  
  56. #define    EXC_SPARC_ILL_STACK        EXC_SPARC_BAD_INST(0x01)    
  57.                     /* bad stack */
  58. #define    EXC_SPARC_ILL_ILLINSTR_FAULT    EXC_SPARC_BAD_INST(0x02    )
  59.                     /* illegal instruction fault */
  60. #define    EXC_SPARC_ILL_PRIVINSTR_FAULT    EXC_SPARC_BAD_INST(0x03    )
  61.                     /* privileged instruction fault */
  62.  
  63.  
  64.  
  65. #define EXC_SPARC_UNIMP_INSTR        T_UNIMP_INSTR
  66. #define EXC_SPARC_PRIV_INSTR        T_PRIV_INSTR
  67. #define EXC_SPARC_UNIMP_FLUSH        T_UNIMP_FLUSH
  68.  
  69. /*
  70.  *    EXC_ARITHMETIC
  71.  */
  72.  
  73. #define EXC_SPARC_BAD_ARITH(x)        (0x600+x)
  74.  
  75. #define EXC_SPARC_FPE_INTOVF_TRAP    EXC_SPARC_BAD_ARITH(0x04)
  76.                     /* integer overflow */
  77. #define EXC_SPARC_FPE_STARTSIG_TRAP    EXC_SPARC_BAD_ARITH(0x05)
  78.                     /* process using fp */
  79. #define EXC_SPARC_FPE_INTDIV_TRAP    EXC_SPARC_BAD_ARITH(0x06)
  80.                     /* integer divide by zero */
  81. #define EXC_SPARC_FPE_FLTINEX_TRAP    EXC_SPARC_BAD_ARITH(0x07)
  82.                     /* [floating inexact result] */
  83. #define EXC_SPARC_FPE_FLTDIV_TRAP    EXC_SPARC_BAD_ARITH(0x08)
  84.                     /* [floating divide by zero] */
  85. #define    EXC_SPARC_FPE_FLTUND_TRAP    EXC_SPARC_BAD_ARITH(0x09)
  86.                     /* [floating underflow] */
  87. #define    EXC_SPARC_FPE_FLTOPERR_TRAP    EXC_SPARC_BAD_ARITH(0x0A)
  88.                     /* [floating operand error] */
  89. #define    EXC_SPARC_FPE_FLTOVF_TRAP    EXC_SPARC_BAD_ARITH(0x0B)
  90.                     /* [floating overflow] */
  91.  
  92.  
  93. #define EXC_SPARC_CP_EXCEPTION        T_CP_EXCEPTION
  94. #define EXC_SPARC_FP_EXCEPTION        T_FP_EXCEPTION
  95. #define EXC_SPARC_TAG_OVERFLOW    T_TAG_OVERFLOW
  96. #define EXC_SPARC_IDIV0        T_IDIV0
  97.  
  98. /*
  99.  *    EXC_BREAKPOINT
  100.  */
  101.  
  102. #define EXC_SPARC_BREAKPOINT1    T_BREAKPOINT
  103.  
  104. /*
  105.  *    EXC_SOFTWARE
  106.  */
  107.  
  108. #define EXC_SPARC_SYSCALL    T_SYSCALL
  109. #define EXC_SPARC_DIV0        T_DIV0
  110. #define EXC_SPARC_FLUSH_WIN    T_FLUSH_WINDOWS
  111. #define EXC_SPARC_CLEAN_WIN    T_CLEAN_WINDOWS
  112. #define EXC_SPARC_RANGE_CHECK    T_RANGE_CHECK
  113. #define EXC_SPARC_FIX_ALIGN    T_FIX_ALIGN
  114. #define EXC_SPARC_INT_OVERFLOW    T_INT_OVERFLOW
  115. #define EXC_SPARC_GETCC        T_GETCC
  116. #define EXC_SPARC_SETCC        T_SETCC
  117.  
  118. #define EXC_SPARC_BAD_USYSCALL    0x700
  119.  
  120. #define EXC_SPARC_DEBUG        0x800
  121.  
  122. #endif    _MACH_SPARC_EXCEPTION_H_
  123.